export function getParamFromUrl(name:string):string|undefined{
    // 获取url参数中对应的值
    if(!name) return "";
    let val="";
    let search:any=location.search?location.search.substr(1):'';
    let _arr=search.split('&');
    if(_arr.length){
        _arr.map((element:string)=> {
            let item=element.split('=');
            if(item[0]==name){
               val= item[1];
            }
        });
    }
    return val;
}

// 防抖函数
/* 如果在300ms内没有再次触发滚动事件，那么就执行函数
如果在300ms内再次触发滚动事件，那么当前的计时取消，重新开始计时 */
export function debounce(fn:()=>void,delay:number=300){
    var time:any=null; 
    return function(){
        if(time){
            clearTimeout(time);
        }
        const args:any=arguments;
        time=setTimeout(()=>{ 
            fn.apply(this,args); 
        },delay);
    }
}

// 节流函数
//每隔固定时间短执行一次函数
export function throttle(fn:()=>void,delay:number=300){
    let goon=true;
    return function(){
        if(!goon){
            return false;
        }
        goon=false;
        let args:any=arguments;
        setTimeout(()=>{
            fn.apply(this,args);
            goon=true;
        },delay)
    }
}